package cn.drenal.capcap.service;

import cn.drenal.capcap.entity.ActivityVote;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 活动投票服务接口
 */
public interface ActivityVoteService extends IService<ActivityVote> {
    
    /**
     * 用户对活动作品进行投票
     * 
     * @param userId 用户ID
     * @param activityId 活动ID
     * @param artworkId 作品ID
     * @return 是否投票成功
     */
    boolean vote(Long userId, Long activityId, Long artworkId);
    
    /**
     * 获取用户在指定活动中已投票次数
     * 
     * @param userId 用户ID
     * @param activityId 活动ID
     * @return 已投票次数
     */
    int getUserVoteCount(Long userId, Long activityId);
    
    /**
     * 检查用户是否已经对该作品投过票
     * 
     * @param userId 用户ID
     * @param artworkId 作品ID
     * @return 是否已投票
     */
    boolean hasVoted(Long userId, Long artworkId);
    
    /**
     * 获取作品在活动中的得票数
     * 
     * @param artworkId 作品ID
     * @return 得票数
     */
    int getArtworkVoteCount(Long artworkId);
}